home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / networke / civ-0.000 / civ-0 / civ-0.3 / src / rules.h < prev    next >
C/C++ Source or Header  |  1995-11-15  |  2KB  |  70 lines

  1. #ifndef _RULES_H
  2. #define _RULES_H
  3.  
  4. #include "mytypes.h"
  5. #include "list.h"
  6. #include "hash.h"
  7.  
  8. enum {
  9.   COPERNICUS, BANK, COLOSSUS, TEMPLE, COURTHOUSE, UNITEDNATIONS,
  10.   SETIPROGRAM, AQUADUCT, COLOSSEUM, MARKETPLACE, HYDROPLANT,
  11.   HOOVERDAM, CUREFORCANCER, FACTORY, WOMENSSUFFRAGE, GREATLIBRARY,
  12.   LIGHTHOUSE, PALACE, CITYWALLS, PYRAMIDS, GREATWALL, MASSTRANSIT,
  13.   SHAKESPEARE, ORACLE, MAGELLAN, MANHATTAN, GRANARY, HANGINGGARDENS,
  14.   DARWIN, RECYCLINGCTR, POWERPLANT, NUCLEARPLANT, FUSIONPLANT, CATHEDRAL, 
  15.   MICHELANGELO, JSBACH, MFGPLANT, SDIDEFENSE, ISAACNEWTON, UNIVERSITY,
  16.   LIBRARY
  17.   };
  18.  
  19. class StrKey;
  20.  
  21. struct Science
  22. {
  23.   char *name;
  24.   List<charp> need;
  25.   List<charp> canBuild;
  26.   // each player sets a bit in here if he's discovered it
  27.   char *wonderObsolete; // which wonder we make obsolete
  28.   ulong discovered;
  29. };
  30.  
  31. struct BuildObject
  32. {
  33.   char *name;
  34.   int type;
  35.   uchar unit; // true if it is a unit
  36.   uchar wonder; // true if wonder
  37.   ushort prodCost;
  38.   uchar maint;
  39.   uchar built; // if its a wonder has it been built or not
  40.   uchar isObsolete; // if its a wonder, is it obsolete
  41.   char *line;
  42.   List<charp> neededObj;
  43.   char *obsolete; // thing which we make obsolete
  44. };
  45.  
  46. extern HashTable<Science, StrKey> sciences;
  47. extern HashTable<BuildObject, StrKey> buildObjects;
  48.  
  49. // call this after the world is set up
  50. void InitializeRules();
  51.  
  52. void InitialScience(int player, List<charp> &discovered,
  53.             List<charp> &canDiscover, List<charp> &canBuild,
  54.             List<charp> &canGovern);
  55.  
  56. void Discover(int player, char *science, List<charp> &discovered,
  57.           List<charp> &canDiscover, List<charp> &canBuild,
  58.           List<charp> &canGovern);
  59.  
  60. int Discovered(int player, char *science);
  61.  
  62. int DiscoverCost(int player, Science *ptr);
  63.  
  64. int WonderObsolete(BuildObject *wonder, int player);
  65.  
  66. void SaveRules();
  67. void RestoreRules();
  68.           
  69. #endif
  70.